home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #193 (1992)(Rhein-Sieg-Soft).zip / Franz PD Disk #193 (1992)(Rhein-Sieg-Soft).adf / GFA.Beispiel / MAUSZEIGER.LST < prev    next >
File List  |  1992-09-14  |  3KB  |  101 lines

  1. REM  ************************************
  2. REM  * Mauszeiger V 1.00 (c) 24.11.1991 *
  3. REM  * by Henry König, Bornheide 71     *
  4. REM  * 2000 Hamburg 53                  *
  5. REM  ************************************
  6. REM
  7. init                            ! Bildschirm und Fenster öffnen
  8. mausanlegen                     ! Maus anlegen und Einbinden
  9. PRINT "Mausdemo mit beliebiger Taste starten."
  10. INPUT x$
  11. maus.demo                       ! nur für Demo, kann weggelassen werden
  12. PRINT "Maus abschalten mit beliebiger Taste."
  13. INPUT x$
  14. mausabschalten                  ! alten Mauszeiger wieder herstellen
  15. CLOSEW #nr%                     ! Fenster schließen
  16. CLOSES nr%                      ! Screen schließen
  17. END
  18. > PROCEDURE maus.demo             ! Maus bewegen
  19. simpspr%=mspeicher1%+100
  20. LPOKE simpspr%,mspeicher1%
  21. DPOKE simpspr%+4,mhoehe%
  22. DPOKE simpspr%+6,0
  23. DPOKE simpspr%+8,0
  24. DPOKE simpspr%+10,1
  25. sn%=1
  26. sn%=GetSprite(simpspr%,sn%)
  27. viewport%=LPEEK(WINDOW(nr%)+46)+44
  28. my%=120
  29. FOR mx%=1 TO 550
  30.   ~MoveSprite(viewport%,simpspr%,mx%,my%)
  31. NEXT mx%
  32. FOR mx%=550 DOWNTO 1
  33.   ~MoveSprite(viewport%,simpspr%,mx%,my%)
  34. NEXT mx%
  35. RETURN
  36. > PROCEDURE mausabschalten        ! alten Mauszeiger wieder benutzen
  37. ~FreeSprite(sn%)                ! Sprite löschen
  38. ~ClearPointer(WINDOW(nr%))      ! Systemmauszeiger (Preferences) setzen
  39. ~FreeMem(mspeicher1%,112)        ! reservierten Speicher wieder freigeben
  40. RETURN
  41. > PROCEDURE mausanlegen           ! Maus anlegen
  42. block%=2^1+2^16
  43. mspeicher%=AllocMem(112,block%)
  44. IF mspeicher%=0 THEN
  45. PRINT "Speicherreservierung fehlgeschlagen"
  46. STOP
  47. ELSE
  48. mspeicher1%=mspeicher%
  49. READ mbreite%,mhoehe%,tiefe%
  50. FOR x=1 TO mhoehe%
  51. READ a$
  52. CLR mplane1
  53. CLR mplane2
  54. FOR i=1 TO mbreite%
  55.   zeichen$=MID$(a$,i,1)
  56.   IF zeichen$="1" OR zeichen$="3" THEN
  57.     mplane1=mplane1+2^(16-i)
  58.   ENDIF
  59.   IF zeichen$="2" OR zeichen$="3" THEN
  60.     mplane2=mplane2+2^(16-i)
  61.   ENDIF
  62. NEXT i
  63. DPOKE mspeicher%,mplane1
  64. DPOKE mspeicher%+2,mplane2
  65. ADD mspeicher%,4
  66. NEXT x
  67. DPOKE mspeicher1%+100,248
  68. DPOKE mspeicher1%+102,248
  69. ~SetPointer(WINDOW(nr%),mspeicher1%,mhoehe%,mbreite%,248,248)
  70. ENDIF
  71. RETURN
  72. > PROCEDURE maus.daten            ! Ausehen der Maus
  73. DATA 16
  74. DATA 16
  75. DATA 2
  76. DATA ----------------
  77. DATA 11--11----22---2
  78. DATA 11--11----22--22
  79. DATA 11--11----22--22
  80. DATA 11--11----22--2-
  81. DATA 11--11----22-22-
  82. DATA 11--11----22-22-
  83. DATA 111111----222---
  84. DATA 111111----222---
  85. DATA 11--11----22-22-
  86. DATA 11--11----22-22-
  87. DATA 11--11----22--2-
  88. DATA 11--11----22--22
  89. DATA 11--11----22--22
  90. DATA 11--11----22---2
  91. DATA ----------------
  92. RETURN
  93. > PROCEDURE init                  ! Initialisierung
  94. breite%=640                   ! Fensterbreite
  95. hoehe%=256                    ! Fensterhöhe
  96. ebenen%=2                     ! Anzahl der Bitplanes
  97. nr%=1                         ! Fensternummer
  98. OPENS nr%,0,0,breite%,hoehe%,ebenen%,&H8000
  99. OPENW #nr%,0,0,breite%,hoehe%,&H18,&H1800,nr%
  100. RETURN
  101.